package com.tjec.project.workflow.service;

import com.tjec.project.businessWorkbench.domain.BmsBusiness;
import com.tjec.project.projectWorkbench.domain.CancleReportNoVo;
import com.tjec.project.workflow.domain.BmsWorkflow;
import com.tjec.project.workflow.domain.dto.WorkflowParamsDto;
import com.tjec.project.workflow.domain.vo.BmsAttachmentsVo;
import com.tjec.project.workflow.domain.vo.BmsCatalogsVo;
import com.tjec.project.workflow.domain.vo.BmsWorkflowVo;

import java.util.List;
import java.util.Map;

/**
 * 项目流程Service接口
 * 
 * @author pangyongfeng
 * @date 2020-05-18
 */
public interface IBmsWorkflowService 
{

    /**
     * 查询项目流程列表
     * 
     * @param bmsWorkflow 项目流程
     * @return 项目流程集合
     */
    public List<BmsWorkflow> selectBmsWorkflowList(BmsWorkflow bmsWorkflow);

    /**
     * 新增项目流程
     * 
     * @param bmsWorkflow 项目流程
     * @return 结果
     */
    public int insertBmsWorkflow(BmsWorkflowVo bmsWorkflow);

    /**
     * 修改项目流程
     * 
     * @param bmsWorkflow 项目流程
     * @return 结果
     */
    public int updateBmsWorkflow(BmsWorkflowVo bmsWorkflow);
    
    /**
	 * 获取传入bpm系统的参数
	 * @param map
	 * @return
	 */
    public WorkflowParamsDto getBpmParams(BmsWorkflow bmsWorkflow);
    
    /**
     * 添加项目文档目录
     * @param bmsCatalogsVo
     * @return 返回目录id
     */
    public String createCatalog(BmsCatalogsVo bmsCatalogsVo);
    
    public int insertAttachments(BmsAttachmentsVo bmsAttachmentsVo);
    
    /**
	 * 获取本项目项目成员和项目负责人
	 * @param projectId 项目id
	 * @return
	 */
	public String getMembers(String projectId);
	
	 /**
     * 删除报告号和招标代理号
     * 
     * @param cancleReportNoVo 删除报告号和招标代理号
     * @return 结果
     */
    public int cancleReportNo(CancleReportNoVo cancleReportNoVo);
    
    /**
	 * 检查用户是否参与过此流程
	 * @param jobNo
	 * @param instanceId
	 * @return
	 */
	Integer checkTookPartIn(String jobNo,String instanceId);
	
	public String updateBmsBusinessStatus(BmsBusiness bmsBusiness);
}
